import { Context } from 'koa';

export function logger() {
    return async (ctx: Context, next: () => Promise<void>) => {
        const start = Date.now();  // 先获取请求进入的时间
        await next();                     // 让出执行权，等待下游中间件运行结束后
        const ms = Date.now() - start; // 在第二阶段计算Date.now()的差值来得出处理请求的时间
        console.log(`${ctx.method} ${ctx.url} ${ctx.status} - ${ms}ms`)
    };
}